<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: gdl.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">gdl.hpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Low level graph drawing operations. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classintseq__t.html">intseq_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ordered sequence of integer constants.  <a href="classintseq__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classintset__t.html">intset_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of integer constants.  <a href="classintset__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classintmap__t.html">intmap_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map of integer constants to integer constants.  <a href="classintmap__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnode__set__t.html">node_set_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of graph nodes.  <a href="classnode__set__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnode__iterator.html">node_iterator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Node iterator (used to draw graphs)  <a href="classnode__iterator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgdl__graph__t.html">gdl_graph_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">gdl graph interface - includes only functions required to draw it  <a href="classgdl__graph__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5156b6c8b6ec23fd5bddc007292bd8ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5156b6c8b6ec23fd5bddc007292bd8ea"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a5156b6c8b6ec23fd5bddc007292bd8ea">gen_gdl</a> (const <a class="el" href="classgdl__graph__t.html">gdl_graph_t</a> *g, const char *fname)</td></tr>
<tr class="memdesc:a5156b6c8b6ec23fd5bddc007292bd8ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create GDL file for graph. <br /></td></tr>
<tr class="separator:a5156b6c8b6ec23fd5bddc007292bd8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a972b37638d9cb8b5aa1111d73c545717"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a972b37638d9cb8b5aa1111d73c545717">display_gdl</a> (const char *fname)</td></tr>
<tr class="memdesc:a972b37638d9cb8b5aa1111d73c545717"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display GDL file by calling wingraph32.  <a href="#a972b37638d9cb8b5aa1111d73c545717">More...</a><br /></td></tr>
<tr class="separator:a972b37638d9cb8b5aa1111d73c545717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93196a671ccab264b2295fba6649842e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a93196a671ccab264b2295fba6649842e">gen_flow_graph</a> (const char *filename, const char *title, <a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2, int gflags)</td></tr>
<tr class="memdesc:a93196a671ccab264b2295fba6649842e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build and display a flow graph.  <a href="#a93196a671ccab264b2295fba6649842e">More...</a><br /></td></tr>
<tr class="separator:a93196a671ccab264b2295fba6649842e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a274129caa64ff5ec5916f2fc77a8da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a5a274129caa64ff5ec5916f2fc77a8da">gen_simple_call_chart</a> (const char *filename, const char *<a class="el" href="pro_8h.html#a96279fe0e5fa8c31bdf3b09af132fc44">wait</a>, const char *title, int gflags)</td></tr>
<tr class="memdesc:a5a274129caa64ff5ec5916f2fc77a8da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build and display a simple function call graph.  <a href="#a5a274129caa64ff5ec5916f2fc77a8da">More...</a><br /></td></tr>
<tr class="separator:a5a274129caa64ff5ec5916f2fc77a8da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac8b0045428d6613e1ed4b7dac3fb486"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#aac8b0045428d6613e1ed4b7dac3fb486">gen_complex_call_chart</a> (const char *filename, const char *<a class="el" href="pro_8h.html#a96279fe0e5fa8c31bdf3b09af132fc44">wait</a>, const char *title, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2, int flags, <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> recursion_depth=-1)</td></tr>
<tr class="memdesc:aac8b0045428d6613e1ed4b7dac3fb486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build and display a complex xref graph.  <a href="#aac8b0045428d6613e1ed4b7dac3fb486">More...</a><br /></td></tr>
<tr class="separator:aac8b0045428d6613e1ed4b7dac3fb486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9850e7542b56aa9030a39a6b31b73002"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a9850e7542b56aa9030a39a6b31b73002">setup_graph_subsystem</a> (const char *_grapher, <a class="el" href="pro_8h.html#a3df5040891132e50157aee66affdf1de">bgcolor_t</a>(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *get_graph_color)(int color))</td></tr>
<tr class="memdesc:a9850e7542b56aa9030a39a6b31b73002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the user-defined graph colors and graph viewer program.  <a href="#a9850e7542b56aa9030a39a6b31b73002">More...</a><br /></td></tr>
<tr class="separator:a9850e7542b56aa9030a39a6b31b73002"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a6b18900ce3f264fd46990d97a42e59bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>DECLARE_HELPER</b>(decl)                                                                            </td></tr>
<tr class="separator:a6b18900ce3f264fd46990d97a42e59bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62540274d300f2717736ca15a5283fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga62540274d300f2717736ca15a5283fc3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__1.html#ga62540274d300f2717736ca15a5283fc3">CHART_PRINT_NAMES</a>&#160;&#160;&#160;0x1000</td></tr>
<tr class="memdesc:ga62540274d300f2717736ca15a5283fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">print labels for each block? <br /></td></tr>
<tr class="separator:ga62540274d300f2717736ca15a5283fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7fd4d296b9ac7d6c999430c36ba5928"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf7fd4d296b9ac7d6c999430c36ba5928"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__1.html#gaf7fd4d296b9ac7d6c999430c36ba5928">CHART_GEN_DOT</a>&#160;&#160;&#160;0x2000</td></tr>
<tr class="memdesc:gaf7fd4d296b9ac7d6c999430c36ba5928"><td class="mdescLeft">&#160;</td><td class="mdescRight">generate .dot file (file extension is forced to .dot) <br /></td></tr>
<tr class="separator:gaf7fd4d296b9ac7d6c999430c36ba5928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga491a489656cc152f2e33cde871b3dfeb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga491a489656cc152f2e33cde871b3dfeb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__1.html#ga491a489656cc152f2e33cde871b3dfeb">CHART_GEN_GDL</a>&#160;&#160;&#160;0x4000</td></tr>
<tr class="memdesc:ga491a489656cc152f2e33cde871b3dfeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">generate .gdl file (file extension is forced to .gdl) <br /></td></tr>
<tr class="separator:ga491a489656cc152f2e33cde871b3dfeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga824745a58fb5f6df32a410ff1f5e8cb9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga824745a58fb5f6df32a410ff1f5e8cb9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__1.html#ga824745a58fb5f6df32a410ff1f5e8cb9">CHART_WINGRAPH</a>&#160;&#160;&#160;0x8000</td></tr>
<tr class="memdesc:ga824745a58fb5f6df32a410ff1f5e8cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">call grapher to display the graph <br /></td></tr>
<tr class="separator:ga824745a58fb5f6df32a410ff1f5e8cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb1d213b42a0d904bf524a9cf683c56a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb1d213b42a0d904bf524a9cf683c56a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#gafb1d213b42a0d904bf524a9cf683c56a">CHART_NOLIBFUNCS</a>&#160;&#160;&#160;0x0400</td></tr>
<tr class="memdesc:gafb1d213b42a0d904bf524a9cf683c56a"><td class="mdescLeft">&#160;</td><td class="mdescRight">don't include library functions in the graph <br /></td></tr>
<tr class="separator:gafb1d213b42a0d904bf524a9cf683c56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66caa3a82049d2bf182dc92098ca693b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66caa3a82049d2bf182dc92098ca693b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga66caa3a82049d2bf182dc92098ca693b">CHART_REFERENCING</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga66caa3a82049d2bf182dc92098ca693b"><td class="mdescLeft">&#160;</td><td class="mdescRight">references to the addresses in the list <br /></td></tr>
<tr class="separator:ga66caa3a82049d2bf182dc92098ca693b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95de1317d44f28e9c55ec9e429b60c20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga95de1317d44f28e9c55ec9e429b60c20"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga95de1317d44f28e9c55ec9e429b60c20">CHART_REFERENCED</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga95de1317d44f28e9c55ec9e429b60c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">references from the addresses in the list <br /></td></tr>
<tr class="separator:ga95de1317d44f28e9c55ec9e429b60c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga433457956d5baa22e6d811b7ebaf970d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga433457956d5baa22e6d811b7ebaf970d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga433457956d5baa22e6d811b7ebaf970d">CHART_RECURSIVE</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:ga433457956d5baa22e6d811b7ebaf970d"><td class="mdescLeft">&#160;</td><td class="mdescRight">analyze added blocks <br /></td></tr>
<tr class="separator:ga433457956d5baa22e6d811b7ebaf970d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2b2cbde494562e9cbf76d0ad374b139"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2b2cbde494562e9cbf76d0ad374b139"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#gae2b2cbde494562e9cbf76d0ad374b139">CHART_FOLLOW_DIRECTION</a>&#160;&#160;&#160;0x0008</td></tr>
<tr class="memdesc:gae2b2cbde494562e9cbf76d0ad374b139"><td class="mdescLeft">&#160;</td><td class="mdescRight">analyze references to added blocks only in the direction of the reference who discovered the current block <br /></td></tr>
<tr class="separator:gae2b2cbde494562e9cbf76d0ad374b139"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41cd981527cfeb7f41829b4a36a51763"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41cd981527cfeb7f41829b4a36a51763"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CHART_IGNORE_XTRN</b>&#160;&#160;&#160;0x0010</td></tr>
<tr class="separator:ga41cd981527cfeb7f41829b4a36a51763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c722df964302e5f29e31ae9cdaa4ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c722df964302e5f29e31ae9cdaa4ef0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CHART_IGNORE_DATA_BSS</b>&#160;&#160;&#160;0x0020</td></tr>
<tr class="separator:ga4c722df964302e5f29e31ae9cdaa4ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02f76a08923996223c388f5e3a43cb6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga02f76a08923996223c388f5e3a43cb6e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga02f76a08923996223c388f5e3a43cb6e">CHART_IGNORE_LIB_TO</a>&#160;&#160;&#160;0x0040</td></tr>
<tr class="memdesc:ga02f76a08923996223c388f5e3a43cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore references to library functions <br /></td></tr>
<tr class="separator:ga02f76a08923996223c388f5e3a43cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a62e993ab793d4fea0da97941f98234"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a62e993ab793d4fea0da97941f98234"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga2a62e993ab793d4fea0da97941f98234">CHART_IGNORE_LIB_FROM</a>&#160;&#160;&#160;0x0080</td></tr>
<tr class="memdesc:ga2a62e993ab793d4fea0da97941f98234"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore references from library functions <br /></td></tr>
<tr class="separator:ga2a62e993ab793d4fea0da97941f98234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga627a4fbcf9963ca1d30f3dc6eb2d279a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga627a4fbcf9963ca1d30f3dc6eb2d279a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CHART_PRINT_COMMENTS</b>&#160;&#160;&#160;0x0100</td></tr>
<tr class="separator:ga627a4fbcf9963ca1d30f3dc6eb2d279a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37b5da807556f156e6bbd53e809c8efb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga37b5da807556f156e6bbd53e809c8efb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___c_h_a_r_t__2.html#ga37b5da807556f156e6bbd53e809c8efb">CHART_PRINT_DOTS</a>&#160;&#160;&#160;0x0200</td></tr>
<tr class="memdesc:ga37b5da807556f156e6bbd53e809c8efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">print dots if xrefs exist outside of the range recursion depth <br /></td></tr>
<tr class="separator:ga37b5da807556f156e6bbd53e809c8efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a4731acdf3d3fa29c7f82d3a3f7ba1d81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4731acdf3d3fa29c7f82d3a3f7ba1d81"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="classintseq__t.html">intseq_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>array_of_intseq_t</b></td></tr>
<tr class="separator:a4731acdf3d3fa29c7f82d3a3f7ba1d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab40f356357f5fdde55026df205c05752"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab40f356357f5fdde55026df205c05752"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="classintmap__t.html">intmap_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>array_of_intmap_t</b></td></tr>
<tr class="separator:ab40f356357f5fdde55026df205c05752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56c517ea504e19a7a395d4c3fb438e57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56c517ea504e19a7a395d4c3fb438e57"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="classnode__set__t.html">node_set_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>array_of_node_set_t</b></td></tr>
<tr class="separator:a56c517ea504e19a7a395d4c3fb438e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:afa6fb2b53981d849d63273abbb1624bd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bd">fc_block_type_t</a> { <br />
&#160;&#160;<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda04b9c1a0967d22c9e8ad7729d996fc02">fcb_normal</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda8d2d0dc32bf5afb00766a6335270ea50">fcb_indjump</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda33910a87f089f074ed59585bb9639bd9">fcb_ret</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda53570dd8360539ad7b53a9a1e854b566">fcb_cndret</a>, 
<br />
&#160;&#160;<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda4041fe356b6c7b25f50ac7eeb3fb233c">fcb_noret</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda51ffb19737bb56c728e861b880f1288c">fcb_enoret</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda8e3f6f2e40279a64b2c5f8f56db0372e">fcb_extern</a>, 
<a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bda825a4677e8af07db93a84588c908611d">fcb_error</a>
<br />
 }</td></tr>
<tr class="memdesc:afa6fb2b53981d849d63273abbb1624bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flow chart block types.  <a href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bd">More...</a><br /></td></tr>
<tr class="separator:afa6fb2b53981d849d63273abbb1624bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a95c4958df5b9105914c03d03144f32b1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gdl_8hpp.html#a95c4958df5b9105914c03d03144f32b1">default_graph_format</a></td></tr>
<tr class="memdesc:a95c4958df5b9105914c03d03144f32b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format to generate when not specified in the flags.  <a href="#a95c4958df5b9105914c03d03144f32b1">More...</a><br /></td></tr>
<tr class="separator:a95c4958df5b9105914c03d03144f32b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a6b18900ce3f264fd46990d97a42e59bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_HELPER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">decl</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">decl <a class="code" href="classnode__iterator.html">node_iterator</a> *<a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> node_iterator_goup(<a class="code" href="classnode__iterator.html">node_iterator</a> *); \</div>
<div class="line">decl <span class="keywordtype">void</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> create_qflow_chart(qflow_chart_t &amp;);           \</div>
<div class="line">decl <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> append_to_flowchart(qflow_chart_t &amp;, <a class="code" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>, <a class="code" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>); \</div>
<div class="line">decl <a class="code" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bd">fc_block_type_t</a> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> fc_calc_block_type(<span class="keyword">const</span> qflow_chart_t &amp;, <span class="keywordtype">size_t</span>); \</div>
<div class="line">decl <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> create_multirange_qflow_chart(qflow_chart_t &amp;, <span class="keyword">const</span> rangevec_t &amp;);</div>
<div class="ttc" id="pro_8h_html_a7b0aeaed04e477c02cf8ea3452002d1a"><div class="ttname"><a href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a></div><div class="ttdeci">uint32 ea_t</div><div class="ttdoc">effective address </div><div class="ttdef"><b>Definition:</b> pro.h:408</div></div>
<div class="ttc" id="pro_8h_html_a176294e75f953787714b9d08ffa89adf"><div class="ttname"><a href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a></div><div class="ttdeci">#define ida_export</div><div class="ttdoc">functions marked with this keyword are available as part of the IDA SDK </div><div class="ttdef"><b>Definition:</b> pro.h:259</div></div>
<div class="ttc" id="gdl_8hpp_html_afa6fb2b53981d849d63273abbb1624bd"><div class="ttname"><a href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bd">fc_block_type_t</a></div><div class="ttdeci">fc_block_type_t</div><div class="ttdoc">Flow chart block types. </div><div class="ttdef"><b>Definition:</b> gdl.hpp:32</div></div>
<div class="ttc" id="classnode__iterator_html"><div class="ttname"><a href="classnode__iterator.html">node_iterator</a></div><div class="ttdoc">Node iterator (used to draw graphs) </div><div class="ttdef"><b>Definition:</b> gdl.hpp:136</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="afa6fb2b53981d849d63273abbb1624bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gdl_8hpp.html#afa6fb2b53981d849d63273abbb1624bd">fc_block_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flow chart block types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda04b9c1a0967d22c9e8ad7729d996fc02"></a>fcb_normal&#160;</td><td class="fielddoc">
<p>normal block </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda8d2d0dc32bf5afb00766a6335270ea50"></a>fcb_indjump&#160;</td><td class="fielddoc">
<p>block ends with indirect jump </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda33910a87f089f074ed59585bb9639bd9"></a>fcb_ret&#160;</td><td class="fielddoc">
<p>return block </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda53570dd8360539ad7b53a9a1e854b566"></a>fcb_cndret&#160;</td><td class="fielddoc">
<p>conditional return block </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda4041fe356b6c7b25f50ac7eeb3fb233c"></a>fcb_noret&#160;</td><td class="fielddoc">
<p>noreturn block </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda51ffb19737bb56c728e861b880f1288c"></a>fcb_enoret&#160;</td><td class="fielddoc">
<p>external noreturn block (does not belong to the function) </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda8e3f6f2e40279a64b2c5f8f56db0372e"></a>fcb_extern&#160;</td><td class="fielddoc">
<p>external normal block </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afa6fb2b53981d849d63273abbb1624bda825a4677e8af07db93a84588c908611d"></a>fcb_error&#160;</td><td class="fielddoc">
<p>block passes execution past the function end </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a972b37638d9cb8b5aa1111d73c545717"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> display_gdl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Display GDL file by calling wingraph32. </p>
<p>The exact name of the grapher is taken from the configuration file and set up by <a class="el" href="gdl_8hpp.html#a9850e7542b56aa9030a39a6b31b73002" title="Setup the user-defined graph colors and graph viewer program. ">setup_graph_subsystem()</a>. </p><dl class="section return"><dt>Returns</dt><dd>error code from os, 0 if ok </dd></dl>

</div>
</div>
<a class="anchor" id="a93196a671ccab264b2295fba6649842e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> gen_flow_graph </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>title</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>gflags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Build and display a flow graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>output file name. the file extension is not used. maybe NULL. </td></tr>
    <tr><td class="paramname">title</td><td>graph title </td></tr>
    <tr><td class="paramname">pfn</td><td>function to graph </td></tr>
    <tr><td class="paramname">ea1,ea2</td><td>if pfn == NULL, then the address range </td></tr>
    <tr><td class="paramname">gflags</td><td>combination of <a class="el" href="group___c_h_a_r_t__1.html">Flow graph building flags</a>. if none of <a class="el" href="group___c_h_a_r_t__1.html#gaf7fd4d296b9ac7d6c999430c36ba5928" title="generate .dot file (file extension is forced to .dot) ">CHART_GEN_DOT</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga491a489656cc152f2e33cde871b3dfeb" title="generate .gdl file (file extension is forced to .gdl) ">CHART_GEN_GDL</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga824745a58fb5f6df32a410ff1f5e8cb9" title="call grapher to display the graph ">CHART_WINGRAPH</a> is specified, the function will return false </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success. if fails, a warning message is displayed on the screen </dd></dl>

</div>
</div>
<a class="anchor" id="a5a274129caa64ff5ec5916f2fc77a8da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> gen_simple_call_chart </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>wait</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>title</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>gflags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Build and display a simple function call graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>output file name. the file extension is not used. maybe NULL. </td></tr>
    <tr><td class="paramname">wait</td><td>message to display during graph building </td></tr>
    <tr><td class="paramname">title</td><td>graph title </td></tr>
    <tr><td class="paramname">gflags</td><td>combination of <a class="el" href="group___c_h_a_r_t__2.html#gafb1d213b42a0d904bf524a9cf683c56a" title="don&#39;t include library functions in the graph ">CHART_NOLIBFUNCS</a> and <a class="el" href="group___c_h_a_r_t__1.html">Flow graph building flags</a>. if none of <a class="el" href="group___c_h_a_r_t__1.html#gaf7fd4d296b9ac7d6c999430c36ba5928" title="generate .dot file (file extension is forced to .dot) ">CHART_GEN_DOT</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga491a489656cc152f2e33cde871b3dfeb" title="generate .gdl file (file extension is forced to .gdl) ">CHART_GEN_GDL</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga824745a58fb5f6df32a410ff1f5e8cb9" title="call grapher to display the graph ">CHART_WINGRAPH</a> is specified, the function will return false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success. if fails, a warning message is displayed on the screen </dd></dl>

</div>
</div>
<a class="anchor" id="aac8b0045428d6613e1ed4b7dac3fb486"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> gen_complex_call_chart </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>wait</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>title</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a>&#160;</td>
          <td class="paramname"><em>recursion_depth</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Build and display a complex xref graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>output file name. the file extension is not used. maybe NULL. </td></tr>
    <tr><td class="paramname">wait</td><td>message to display during graph building </td></tr>
    <tr><td class="paramname">title</td><td>graph title </td></tr>
    <tr><td class="paramname">ea1,ea2</td><td>address range </td></tr>
    <tr><td class="paramname">flags</td><td>combination of <a class="el" href="group___c_h_a_r_t__2.html">Call chart building flags</a> and <a class="el" href="group___c_h_a_r_t__1.html">Flow graph building flags</a>. if none of <a class="el" href="group___c_h_a_r_t__1.html#gaf7fd4d296b9ac7d6c999430c36ba5928" title="generate .dot file (file extension is forced to .dot) ">CHART_GEN_DOT</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga491a489656cc152f2e33cde871b3dfeb" title="generate .gdl file (file extension is forced to .gdl) ">CHART_GEN_GDL</a>, <a class="el" href="group___c_h_a_r_t__1.html#ga824745a58fb5f6df32a410ff1f5e8cb9" title="call grapher to display the graph ">CHART_WINGRAPH</a> is specified, the function will return false. </td></tr>
    <tr><td class="paramname">recursion_depth</td><td>optional limit of recursion </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success. if fails, a warning message is displayed on the screen </dd></dl>

</div>
</div>
<a class="anchor" id="a9850e7542b56aa9030a39a6b31b73002"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> setup_graph_subsystem </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>_grapher</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3df5040891132e50157aee66affdf1de">bgcolor_t</a>(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *)(int color)&#160;</td>
          <td class="paramname"><em>get_graph_color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Setup the user-defined graph colors and graph viewer program. </p>
<p>This function is called by the GUI at the beginning, so no need to call it again. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a95c4958df5b9105914c03d03144f32b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int default_graph_format</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Format to generate when not specified in the flags. </p>
<p>(e.g. called from UI). the default is set in ida.cfg. 0 - GDL, 1 - DOT. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
